const Store = require('electron-store');
// const md5File = require('md5-file')
// const {
//     v4: uuidv4
// } = require('uuid')
// const path = require('path')

class DataStore extends Store {
    constructor(settings) {
        super(settings)
        this.items = this.get('items') || []
    }
    // 保存列表文件
    saveItems() {
        this.set('items', this.items)
        return this
    }

    // 获取列表文件
    getItems() {
        return this.get('items') || []
    }

    /**
     * 添加文件
     * @param {Array} lists 
     */
    addItem(lists) {
        // 查找已经保存的文件列表
        // 过滤已经存在的文件
        // 文件名称相同, 但是文件路径不同
        const listItems = lists.filter(item => {
            const currentPaths = this.getItems().map(i => i.md5)
            // 判断, 当前存储的文件路径是否与传递过滤的文件路径相同
            // 如果数组中不存在对应的路径, 则保留该文件
            return currentPaths.indexOf(item.md5) < 0
        })
        this.items = [...this.items, ...listItems]
        return this.saveItems()
    }

    // 删除特定的文件
    deleteItem(itemId) {
        this.items = this.items.filter(item => item.id !== itemId)
        return this.saveItems()
    }
}

module.exports = DataStore